import React, { Component } from 'react';
import './App.css';
import Cmp1 from './component/Cmp1'
import { createStore } from 'redux'

let store = createStore((state = { count: 0}, action) => {
    // createStore 有两个参数，第一个是状态，第二个是修改的事件, 在修改时执行，在初始化时也执行
    // state 必须是唯一的，不能有多个state
    // 每次修改，都必须return state对象
    // 设置 store.dispatch({action})
    // 读取 store.getStore()
    //订阅 store.subscribe(() => {}) // 一个回调函数

    switch (action.type) {
        case 'add':
            state.count ++
            return state
        default:
            return state
    }
})

class App extends Component {
    constructor (...props) {
       super(...props)
       this.state = {}
    }

    childrenClick () {
        console.log(this.refs.cmp1)
        this.refs.cmp1.addState()
    }

    componentDidMount() {
        console.log(store.getState())
        store.dispatch({ type: 'add'})
    }

    render () {
           return (
               <div className="App">
                   <input type='button' onClick={this.childrenClick.bind(this)} value={'加一'}/>
                   <Cmp1 ref={'cmp1'}></Cmp1>
                </div>
            );
   }
}

export default App;
